Here is a disassembly of the /bin/sh binary from s2.
Any differences to the jun72 sh.s listing are noted here.
The two programs are nearly identical with just a few changes.
Several of these differences point to defects in the jun72 listing
but some changes appear to just be differences.

40014:  MOV SP,R5
40016:  MOV R5,44574     / save shellarg
40022:  CMPB @2(R5),#55  / look for '-
40030:  BNE 40042
40032:  TRAP 33          / sys intr; 0
40034:  0
40036:  TRAP 32          / sys quit
40040:  0
40042:  TRAP 30          / sys getuid
40044:  TST R0
40046:  BNE 40056
40050:  MOVB #43,41634   / store '#' into "at" (prompt)
40056:  CMP (R5),#1      / just one arg, input from tty
40062:  BLE 40142	/ branch to newline
40064:  CLR R0
40066:  TRAP 6		/ sys close, close 0
40070:  MOV 4(R5),40100 / open argv[1]
40076:  TRAP 5		/ sys open
40100:  ..
40102:  0
40104:  BCC 40136
40106:  JSR R5,40600	/ jsr error
40112:  <Input not found\n\0\0>
40134:  TRAP 1		/ sys exit
40136:  CLR 41634	/ clear "at" (the prompt)
newline:
40142:  TST 41634	/ test if there's a prompt
40146:  BEQ 40162	/ branch to newcom
40150:  MOV #1,R0
40154:  TRAP 4		/ sys write; at; 2.
40156:  ..
40160:  2
newcom:
40162:  MOV 44574,SP	/ move shellarg to sp
40166:  MOV #41671,R3	/ move $parbuf to r3
40172:  MOV #43654,R4	/ move $parp to r4
40176:  CLR 43646	/ clear infile
40202:  CLR 43650	/ clear outfile
40206:  CLR 43644	/ clear glflag
newarg:
40212:  JSR PC,41330	/ jsr blank
40216:  JSR R5,41254	/ jsr delim
40222:      BR 40336
40224:  MOV R3,-(SP)
40226:  CMP R0,#74	/ check for '<
40232:  BNE 40244
40234:  MOV (SP),43646	/ save arg pointer to infile
40240:  CLR (SP)
40242:  BR 40302
40244:  CMP R0,#76	/ check for '>
40250:  BNE 40262	/ bne newchar
40252:  MOV (SP),43650	/ save arg to outfile
40256:  CLR (SP)
40260:  BR 40302
newchar:
40262:  CMP #40,R0	/ check for space (' )
40266:  BEQ 40316
40270:  CMP #212,R0	/ check for '\n + 200 (\n preceded by \)
40274:  BEQ 40316
40276:  JSR PC,40666	/ jsr putc
40302:  JSR PC,41352	/ jsr getc
40306:  JSR R5,41254	/ jsr delim
40312:      BR 40316
40314:  BR 40262	/ br newchar
40316:  CLRB (R3)+
40320:  MOV (SP)+,(R4)+
40322:  BNE 40326
40324:  TST -(R4)
40326:  JSR R5,41254	/ jsr delim
40332:      BR 40336
40334:  BR 40212	/ br newarg
40336:  CLR (R4)
40340:  MOV R0,-(SP)
40342:  JSR PC,40400	/ jsr docom
40346:  CMPB (SP),#46	/ check for '&
40352:  BEQ 40162	/ beq newcom
40354:  TST R1
40356:  BEQ 40370
40360:  TRAP 7		/ sys wait
40362:  BCS 40370
40364:  CMP R0,R1
40366:  BNE 40360
40370:  CMP (SP),#12	/ check for '\n
40374:  BEQ 40142	/ beq newline
40376:  BR 40162
docom:
40400:  SUB #43654,R4	/ sub $parp, r4
40404:  BNE 40412
40406:  CLR R1
40410:  RTS PC
40412:  JSR R5,40642	/ jsr chcom
40416:  qchdir
40420:      BR 40516
40422:  CMP R4,#4
40426:  BEQ 40452
40430:  JSR R5,40600	/ jsr error
40434:  <Arg count\n\0\0>
40450:  BR 40512
40452:  MOV 43656,40462	/ move parp+2 to ...
40460:  TRAP 14		/ sys chdir
40462:  ...
40464:  BCC 40512
40466:  JSR R5,40600	/ jsr error
40472:  <Bad directory\n\0\0>
40512:  CLR R1
40514:  RTS PC
40516:  JSR R5,40642	/ jsr chcom
40522:  qlogin
40524:      BR 40542
40526:  TRAP 13
40530:  BIC (SP),@43654(R1)
40534:  TRAP 13
40536:  BIC (SP),43654(R4)
40542:  TRAP 2
40544:  BR 40774
40546:  BCC 40574
40550:  JSR R5,40600
40554:  DIV (R4)+,R1
40556:  CMP R1,@63541(R1)
40562:  ADD -(R5),-(R1)
40564:  COM @-(SP)
40566:  HALT
40570:  JMP 40142
40574:  MOV R0,R1
40576:  RTS PC
error:
40600:  MOVB (R5)+,44572
40604:  BEQ 40622
40606:  MOV #1,R0
40612:  TRAP 4
40614:  BIC -(R5),@1(R2)
40620:  BR 40600
40622:  INC R5
40624:  BIC #1,R5
40630:  CLR R0
40632:  TRAP 23		/ sysseek
40634:  0
40636:  2
40640:  RTS R5		/ XXX not in jun72 sh.s!

chcom:
40642:  MOV (R5)+,R1
40644:  MOV #41671,R2
40650:  MOVB (R1)+,R0
40652:  CMPB (R2)+,R0
40654:  BNE 40664
40656:  TST R0
40660:  BNE 40650
40662:  TST (R5)+
40664:  RTS R5
40666:  CMP R0,#47
40672:  BEQ 40712
40674:  CMP R0,#42
40700:  BEQ 40712
40702:  BIC #177600,R0
40706:  MOVB R0,(R3)+
40710:  RTS PC
40712:  MOV R0,-(SP)
40714:  JSR PC,41352
40720:  CMP R0,#12
40724:  BNE 40754
40726:  JSR R5,40600		/ jsr error
40732:  <"' imbalance\n\0>
40750:  JMP 40142		/ jmp newline
40754:  CMP R0,(SP)
40756:  BEQ 40770
40760:  BIC #177600,R0
40764:  MOVB R0,(R3)+
40766:  BR 40714
40770:  TST (SP)+
40772:  RTS PC
40774:  MOV 43646,41020
41002:  BEQ 41050
41004:  TSTB @41020
41010:  BEQ 41026
41012:  CLR R0
41014:  TRAP 6
41016:  TRAP 5
41020:  BIC R0,R0
41022:  HALT
41024:  BCC 41050
41026:  JSR R5,40600
41032:  ADD @72560(R1),(R1)
41036:  CMP R1,64546(R4)
41042:  ADD (R5)+,@-(R4)
41044:  000012
41046:  TRAP 1
41050:  MOV 43650,R2
41054:  BEQ 41172
41056:  CMPB (R2),#76
41062:  BNE 41102
41064:  INC R2
41066:  MOV R2,41074
41072:  TRAP 5
41074:  BIC R0,R0
41076:  WAIT
41100:  BCC 41142
41102:  MOV R2,41110
41106:  TRAP 10
41110:  BIC R0,R0
41112:  000017
41114:  BCC 41142
41114:  BCC 41142
41116:  JSR R5,40600
41122:  ASH (PC),R5
41124:  MUL 72165(R4),R1
41130:  ADD @(R0)+,-(R0)
41132:  ADD 5145(R1),@-(R1)
41136:  HALT
41140:  TRAP 1
41142:  TRAP 6
41144:  MOV R2,41160
41150:  MOV #1,R0
41154:  TRAP 6			/ sysclose
41156:  TRAP 5			/ sysopen
41160:  ..
41162:  1
41164:  TRAP 23			/ sysseek
41166:  0
41170:  2
41172:  TST 43644
41176:  BNE 41236
41200:  TRAP 13			/ sysexec
41202:  41671 			/ parbuf
41204:  43654			/ parp
41206:  TRAP 13			/ sysexec
41210:  41664			/ binpb "/bin/"
41212:  43654			/ parp
	/ XXX jun72 srcs has
	/  sys stat; binpb; inbuf
	/  bes 2f
	/  mov $shell,parp-2
	/  mov $binpb, parp
	/  sys exec; shell; parp-2
	/ here..
        / XXX this is not in the jun72 srcs!
41214:  JSR R5,40600		/ error
41220:  <No command\n\0>
41234:  TRAP 1			/ sysexit
41236:  MOV #41652,43652
41244:  TRAP 13			/ sysexec
41246:  41652			/ </etc/glob\0>
41250:  43652			/ parp-2
41252:  BR 41214

delim:
41254:  CMP R0,#12		/ check '\n
41260:  BEQ 41326
41262:  CMP R0,#46		/ check '&
41266:  BEQ 41326
41270:  CMP R0,#73		/ check ';
41274:  BEQ 41326
41276:  CMP R0,#77		/ check '?
41302:  BEQ 41320
	/ XXX not in jun72
41304:  CMP R0,#52		/ check '*
41310:  BEQ 41320
	/ XXX end jun72
41312:  CMP R0,#133		/ check '[
41316:  BNE 41324
41320:  INC 43644
41324:  TST (R5)+
41326:  RTS R5
41330:  JSR PC,41352
41334:  CMP #40,R0
41340:  BEQ 41330
41342:  CMP R0,#212
41346:  BEQ 41330
41350:  RTS PC
41352:  TST 43642
41356:  BNE 41444
41360:  MOV 44566,R1
41364:  CMP R1,44570
41370:  BNE 41400
41372:  JSR PC,41536
41376:  BR 41352
41400:  MOVB (R1)+,R0
41402:  MOV R1,44566
41406:  BIS 44564,R0
41412:  CLR 44564
41416:  CMP R0,#134
41422:  BEQ 41434
41424:  CMP R0,#44
41430:  BEQ 41466
41432:  RTS PC
41434:  MOV #200,44564
41442:  BR 41352
41444:  MOVB @43642,R0
41450:  BEQ 41460
41452:  INC 43642
41456:  RTS PC
41460:  CLR 43642
41464:  BR 41352
41466:  JSR PC,41352
41472:  SUB #60,R0
41476:  CMP R0,#11
41502:  BLOS 41510
41504:  MOV #11,R0
41510:  MOV 44574,R1
41514:  INC R0
41516:  CMP R0,(R1)
41520:  BGE 41352
41522:  ASL R0
41524:  ADD R1,R0
41526:  MOV 2(R0),43642
41534:  BR 41352
41536:  MOV #44164,R0
41542:  MOV R0,44566
41546:  MOV R0,44570
41552:  DEC R0
41554:  MOV R0,41570
41560:  INC 41570
41564:  CLR R0
41566:  TRAP 3
41570:  HALT
41572:  WAIT
41574:  BCS 41630
41576:  TST R0
41600:  BEQ 41630
41602:  INC 44570
41606:  CMP 41570,#44564
41614:  BCC 41630
41616:  CMPB @41570,#12
41624:  BNE 41560
41626:  RTS PC
41630:  TRAP 1				/ sys exit
quest:
41632:  <?\n>
at:
41634:  <@ >
qchdir:
41636:  <chdir\0>
glogin:
41644:  <login\0>
	/ XXX jun72 has shell: </bin/sh\0> here.
glob:
41652:  </etc/glob\0>
binpb:
41664:  </bin/>
parbuf:	/ 41671: 002
41672:  HALT
41674:  HALT
41676:  HALT
41700:  HALT
41702:  HALT
41704:  HALT
41706:  HALT
41710:  HALT
41712:  HALT
41714:  HALT
41716:  HALT
41720:  HALT
41722:  HALT
41724:  HALT
41726:  HALT
41730:  HALT
41732:  HALT
41734:  HALT
41736:  HALT
41740:  HALT
41742:  HALT
41744:  HALT
41746:  HALT
41750:  HALT
41752:  HALT
41754:  HALT
41756:  HALT
41760:  HALT
41762:  HALT
41764:  HALT
41766:  HALT
41770:  HALT
41772:  HALT
41774:  HALT
41776:  HALT
42000:  HALT
42002:  HALT
42004:  HALT
42006:  HALT


